10 REM **************************** 20 REM *** *** 30 REM ** MINIATURE GOLF V.2 ** 40 REM *** *** 50 REM **************************** 60 REM IDEA CONCEIVED AND WRITTEN 70 REM BY WVMIKE. V.2 AS MODIFIED 80 REM AND ENHANCED BY B29GUNNER. 90 REM MORE ENHANCEMENTS PLANNED. 100 : 110 S=54272:P1U=S+1:W1U=S+3:F1W=S+4:A1D=S+5:S1R=S+6:P2L=S+7 120 U2P=S+8:L2W=S+9:P2U=S+10:F2W=S+11:A2D=S+12:S2R=S+13 130 : 140 VOL=S+24 150 REM ^^^ STANDARD SID ASDDRESSES ^^^ 160 : 170 GOSUB230:REM INSTRUCTIONS 180 GOSUB850:REM SETUP 190 GOSUB2770:REM PLAY! 200 GOTO3790:REM !END! 210 END 220 : 230 : 240 :REM *** INSTS *** 250 : 260 POKE53281,15:POKE53280,15 270 INPUT"[147][144]DO YOU NEED INSTRUCTIONS (Y/N):";YN$ 280 IFYN$="N"THENPRINT"PLEASE WAIT...":RETURN 290 IFYN$<>"Y"THEN270 300 PRINT"[147][144]"TAB(8)"*** MINIATURE GOLF ***" 310 PRINT:PRINT 320 PRINT"WELCOME TO THE ALBERTS COUNTRY CLUB. THIS BEAUTIFUL NINE-HOLE "; 330 PRINT"MINIATURE GOLF COURSE IS OPEN AND WAITING FOR YOU !" 340 PRINT 350 PRINT"YOU SHOULD KNOW THE RULES OF THE COURSE BEFORE YOU BEGIN PLAY !" 360 PRINT 370 PRINT"TO PUTT THE BALL,YOU HAVE TO INPUT WHICH WAY YOU WANT TO "; 380 PRINT"AIM IT." 390 PRINT"THERE ARE 8 DIRECTIONS WITH THE BALL ASSUMED AT * (SEE BELOW): 400 [153]:[153][163]17)"2 1 8":[153][163]17)"3 * 7":[153][163]17)"4 5 6" 410 [153]:[153]:[153]"PRESS RETURN WHEN READY TO CONTINUE" 420 [161]X$:[139]X$[179][177][199](13)[167]420 430 [153]"LOAD" 440 [153][163]9)"*** MINIATURE GOLF *** 450 PRINT:PRINT 460 PRINT"THEN YOU MUST INPUT HOW HARD TO HIT THE BALL. THE SPEED SHOULD "; 470 PRINT"BE SOME NUMBER BETWEEN 0.00 AND 5.00. FOR EXAMPLE, YOUCOULD"; 480 PRINT" HIT THE BALL A RELATIVE SPEED OF 3.2" 490 PRINT 500 PRINT"IT WILL TAKE A FEW TRIES BEFORE YOU GET USED TO HOW HARD TO PUTT "; 510 PRINT"THE BALL.":PRINT 520 PRINT"ALSO, THERE ARE FOUR TYPES OF HAZARDS ONTHE COURSE. YOU SHOULD "; 530 PRINT"BE AWARE OF WHATTHEY ARE AND WHAT AFFECT THEY HAVE ON YOU "; 540 PRINT"AND YOUR BALL." 550 PRINT:PRINT:PRINT:PRINT"PRESS RETURN WHEN READY TO CONTINUE" 560 GETX$:IFX$<>CHR$(13)THEN560 570 PRINT"[147]" 580 PRINTTAB(9)"*** MINIATURE GOLF *** 590 [153]:[153] 600 [153]"BLOCKS: THESE ARE LIKE WALLS. YOU MUST PUTT AROUND THEM." 610 [153] 620 [153]"YELLOW TRAPS REPRESENT SAND. YOUR BALL CANNOT PENETRATE THROUGH "; 630 [153]"A SAND TRAP. THE PENALTY FOR LANDING IN THE SAND IS ONE STROKE." 640 [153] 650 [153]"WATER: LIKE SAND, THESE BLUE HAZARDS WILL STOP YOUR BALL."; 660 [153]" THE PENALTY FOR LANDING IN WATER IS ONE STROKE." 670 [153] 680 [153]"UNEVEN SURFACES: THESE RED HAZARDS CAUSETHE BALL TO ROLL IN "; 690 [153]"A DIRECTION WHICH ISUNPREDICTABLE THERE IS NO PENALTY "; 700 [153]"FORHITTING THIS HAZARD." 710 [153]:[153]:[153]"PRESS RETURN WHEN READY TO CONTINUE" 720 [161]X$:[139]X$[179][177][199](13)[167]720 730 [153]"LOADPRINT#" 740 [153][163]9)"*** MINIATURE GOLF *** 750 PRINT:PRINT 760 PRINT"[144]YOU ARE TRYING TO SINK THE BALL IN AS FEW TRIES AS POSSIBLE. "; 770 PRINT"THE HOLE IS THE BLACK SQUARE." 780 PRINT 790 PRINT"[144]IF YOU HIT THE BALL TOO HARD, IT WILL JUMP OVER THE HOLE AND "; 800 PRINT"CONTINUE ROLLING.IT MAY ALSO CHANGE DIRECTION, SO BE SURETO HIT "; 810 PRINT"THE BALL JUST HARD ENOUGH." 820 PRINT:PRINT:PRINT"PRESS RETURN WHEN READY TO CONTINUE" 830 GETX$:IFX$<>CHR$(13)THEN830 840 RETURN 850 : 860 :REM *** SETUP *** 870 : 880 REM STORE FANFARE NOTES 890 DIM YY(12),ZZ(12) 900 FORI=1TO12:READYY(I),ZZ(I):NEXTI 910 DATA 25,30,18,209,33,135,25,30,42,62,31,165,50,60,37,162,42,62,31,165 920 DATA 50,60,37,162 930 DIMHA(9,5):FORI=1TO9:FORJ=1TO5:READHA(I,J):NEXT:NEXT 940 DATA 0,0,0,0,2 950 DATA 1,0,0,0,3 960 DATA 0,1,0,0,3 970 DATA 1,1,0,0,3 980 DATA 0,0,0,1,3 990 DATA 0,0,1,1,3 1000 DATA 1,0,1,0,3 1010 DATA 0,1,1,0,4 1020 DATA 0,0,1,1,3 1030 DIMDI(8,2):FORI=1TO8:READDI(I,1),DI(I,2):NEXT 1040 DATA 0,-1,-1,-1,-1,0,-1,1,0,1,1,1,1,0,1,-1 1050 PLT=49152:FORI=0TO24:READC:POKEPLT+I,C:NEXTI 1060 DATA 32,16,192,132 1070 DATA 253,32,16,192 1080 DATA 152,170,164,253 1090 DATA 24,76,240,255 1100 DATA 32,253,174,32 1110 DATA 158,173,76,170,177 1120 DIMV(8):FORI=1TO8:READV(I):NEXT:DATA-40,-41,-1,39,40,41,1,-39 1130 DEF FNSC(X)=PEEK(1024+BX+40*BY+X) 1140 DEF FNCO(X)=PEEK(55296+BX+40*BY+X)AND15 1150 RETURN 1160 REM *** HOLE 1 *** 1170 PRINT"":TS=0 1180 PRINTTAB(10)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1190 FORI=1TO15 1200 PRINTTAB(10)"[161] [146][144][161]" 1210 NEXT 1220 PRINTTAB(10)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1230 PRINT""TAB(19)" " 1240 BY=16:BX=11+INT(17*RND(0)):SYSPLT,BX,BY:PRINT"[209]"; 1250 RETURN 1260 REM *** HOLE 2 *** 1270 PRINT"":TS=0 1280 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1290 FORI=1TO5 1300 PRINTTAB(8)"[161] [146][144][161]" 1310 NEXT 1320 PRINTTAB(8)"[161]  [144][172][162][162][162][162][162][162][162][162][162][146][190]" 1330 PRINTTAB(8)"[161]  [146][144][161]" 1340 PRINTTAB(8)"[161]  [146][144][161]" 1350 PRINTTAB(8)"[161]  [146][144][161]" 1360 PRINTTAB(8)"[161] [146][144][161]" 1370 FORI=1TO6 1380 PRINTTAB(8)"[161] [146][144][161]" 1390 NEXT 1400 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1410 BY=17:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]"; 1420 PRINT""TAB(30)"[144] " 1430 RETURN 1440 REM *** HOLE 3 *** 1450 PRINT"":TS=0 1460 PRINTTAB(20)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1470 FORI=1TO5 1480 PRINTTAB(20)"[161] [146][144][161]" 1490 NEXT 1500 PRINTTAB(8)"[146][172][162][162][162][162][162][162][162][162][162][162][162][190] [146][144][161]" 1510 PRINTTAB(8)"[161] [146][144][161]" 1520 PRINTTAB(8)"[161] [158] [146][144][161]" 1530 PRINTTAB(8)"[161] [158] [146][144][161]" 1540 PRINTTAB(8)"[161] [158] [146][144][161]" 1550 PRINTTAB(8)"[161] [158]  [146][144][161]" 1560 PRINTTAB(8)"[161] [144][172][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1570 FORI=1TO4 1580 PRINTTAB(8)"[161] [146][144][161]" 1590 NEXT 1600 PRINTTAB(8)"[146][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1610 PRINT""TAB(32)"[144] " 1620 BY=17:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 1630 RETURN 1640 REM *** HOLE 4 *** 1650 PRINT"":TS=0 1660 PRINTTAB(7)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1670 FORI=1TO6 1680 PRINTTAB(7)"[161] [146][144][161]" 1690 NEXT 1700 PRINTTAB(7)"[161] [144][172][162][162][162][162][162][162][162][162][162][187][146]  [146][144][161]" 1710 FORI=1TO4 1720 PRINTTAB(7)"[161] [144][146][161] [161] [146][144][161]" 1730 NEXT 1740 PRINTTAB(7)"[161] [144][188][146][162][162][162][187] [188][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1750 FORI=1TO3 1760 PRINTTAB(7)"[161] [144][146][161]" 1770 NEXT 1780 PRINTTAB(7)"[188][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1790 PRINT""TAB(18)"[158] [157][157][157][157][157][157] [157][157][157][157]" 1800 PRINTTAB(25)"[157][157][157] [157][157][157][157][157] [157][157]  " 1810 SYSPLT,32,11:PRINT"[144] " 1820 BY=16:BX=8+INT(10*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 1830 RETURN 1840 REM *** HOLE 5 *** 1850 PRINT"" 1860 PRINT"":TS=0 1870 PRINTTAB(10)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1880 FORI=1TO15 1890 PRINTTAB(10)"[161] [146][144][161]" 1900 NEXT 1910 PRINTTAB(10)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1920 SYSPLT,19,6:PRINT"[173][195][195][195][195][195][189]" 1930 SYSPLT,22,4:PRINT"[144] " 1940 BY=16:BX=11+INT(23*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 1950 RETURN 1960 REM *** HOLE 6 *** 1970 PRINT"":TS=0 1980 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1990 FORI=1TO7 2000 PRINTTAB(8)"[161] [146][144][161]" 2010 NEXT 2020 PRINTTAB(8)"[161] [144][172][162][162][162][162][162][162][162][162][162][146][190]" 2030 FORI=1TO7 2040 PRINTTAB(8)"[161] [146][144][161]" 2050 NEXT 2060 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 2070 SYSPLT,27,4:PRINT"[176][157][194][157][173]" 2080 SYSPLT,20,5:PRINT" [157][157][157][157][157][157] [157][157][157][157][157] [157][157] " 2090 SYSPLT,30,5:PRINT"[144] " 2100 BY=16:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 2110 RETURN 2120 REM *** HOLE 7 *** 2130 PRINT"":TS=0 2140 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][187]" 2150 FORI=1TO4 2160 PRINTTAB(8)"[161] [146][144][161]" 2170 NEXT 2180 PRINTTAB(8)"[161] [144][188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 2190 FORI=1TO4 2200 PRINTTAB(8)"[161] [144][146][161]" 2210 NEXT 2220 PRINTTAB(8)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187] [144][146][161]" 2230 FORI=1TO5 2240 PRINTTAB(24)"[144][161] [144][146][161]" 2250 NEXT 2260 PRINTTAB(24)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 2270 SYSPLT,9,7:PRINT" [157][157][157][157] [157][157][157][157] [157][157][157][157][157] " 2280 SYSPLT,27,8:PRINT" [157][157][157][157][157][157] [157][157][157][157][157][157] [157][157][157][157][157][157][157] " 2290 SYSPLT,13,4:PRINT"[144] " 2300 BY=16:BX=25+INT(13*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 2310 RETURN 2320 REM *** HOLE 8 *** 2330 PRINT"":TS=0 2340 PRINTTAB(7)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 2350 FORI=1TO6 2360 PRINTTAB(7)"[161] [146][144][161]" 2370 NEXT 2380 PRINTTAB(7)"[161] [144][172][162][162][162][162][162][162][162][187] [146][144][161]" 2390 FORI=1TO4 2400 PRINTTAB(7)"[161] [144][146][161] [161] [146][144][161]" 2410 NEXT 2420 PRINTTAB(7)"[188][162][162][162][162][162][162][162][162][162][162][146][190] [161] [144][146][161]" 2430 FORI=1TO3 2440 PRINTTAB(26)"[161] [144][146][161]" 2450 NEXT 2460 PRINTTAB(26)"[188][162][162][162][162][162][162][162][162][162][162][146][190]" 2470 SYSPLT,28,3:PRINT" " 2480 SYSPLT,29,4:PRINT" " 2490 SYSPLT,30,5:PRINT" " 2500 SYSPLT,30,6:PRINT" " 2510 SYSPLT,32,7:PRINT" " 2520 SYSPLT,33,8:PRINT" " 2530 SYSPLT,13,3:PRINT"[158] [157][157][157][157] [157][157][157][157][157] [157][157][157][157] " 2540 SYSPLT,13,10:PRINT"[144] " 2550 BY=16:BX=27+INT(10*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 2560 RETURN 2570 REM *** HOLE 9 *** 2580 PRINT"":TS=0 2590 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 2600 FORI=1TO9 2610 PRINTTAB(8)"[161] [146][144][161]" 2620 NEXT 2630 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][187] [146][144][161]" 2640 FORI=1TO5 2650 PRINTTAB(20)"[161] [146][144][161]" 2660 NEXT 2670 PRINTTAB(20)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 2680 SYSPLT,21,3:PRINT" " 2690 SYSPLT,22,4:PRINT" " 2700 SYSPLT,23,5:PRINT" " 2710 SYSPLT,24,6:PRINT" " 2720 SYSPLT,25,7:PRINT" " 2730 SYSPLT,11,6:PRINT"[144] " 2740 SYSPLT,14,5:PRINT"[174][157][194][157][189]" 2750 BY=16:BX=21+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]" 2760 RETURN 2770 : 2780 :REM *** PLAY *** 2790 : 2800 FORHO=1TO9:BC$="" 2810 GOSUB4030:PRINT"[147]"; 2820 ONHOGOSUB1160,1260,1440,1640,1840,1960,2120,2320,2570 2830 POKE646,9:PRINT"HOLE NUMBER:";STR$(HO);" PAR:";STR$(HA(HO,5)); 2835 PRINT" SCORE";STR$(SC) 2840 PRINT"STROKES:";TS;" OVER/UNDER:";OU;"[146]":POKE646,0 2850 PRINT:PRINT"TRAPS:":IFHA(HO,1)THENPRINT"WATER" 2860 IFHA(HO,2)THENPRINT"[158]SAND" 2870 IFHA(HO,3)THENPRINT"UNEVEN" 2880 IFHA(HO,4)THENPRINT"[144]BLOCKS" 2890 PRINT:PRINT"[144]2 1 8":PRINT"3 [209] 7":PRINT"4 5 6" 2900 SYSPLOT,0,20:FORI=1TO3:PRINT" ":NEXT 2910 D$="":SYSPLT,0,20:INPUT"DIRECTION (1-8)";D$:DIR=VAL(D$) 2920 IFDIR>0ANDDIR<9ANDDIR=INT(DIR)THEN2940 2930 PRINT"THE DIRECTION IS FROM 1 TO 8 ...[145][145]":FORPA=1TO1500:NEXT:GOTO2900 2940 SYSPLT,0,20:FORI=1TO3:PRINT" ":NEXT 2950 D$="":SYSPLT,0,20:INPUT"SPEED (0-5)";D$:SP=VAL(D$) 2960 IFSP>0ANDSP<9THENN1=51:N2=75:GOSUB4200:GOTO2980 2970 PRINT"THE SPEED IS FROM 0 TO 5...[145][145]":FORPA=1TO1500:NEXT:GOTO2940 2980 UF=0:REM CLEAR UNEVEN FLAG 2990 TF=0:BT=0:REM CLEAR TRAP FLAGS 3000 REM BALL MOVES TILL SP=0 OR HAZARD ENCOUNTERED 3010 X2=BX+DI(DI,1):Y2=BY+DI(DI,2) 3020 D2=V(DI):CO=FNCO(D2):IFCO<>5ORFNSC(D2)<>160THEN3060 3030 SYSPLT,BX,BY:PRINTBC$" ";:BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]"; 3040 BT=0:BC$="":GOTO3720 3050 REM DETERMINE BALL LIE 3060 IFCO=0ANDFNSC(D2)<>160THEN3140:REM HIT A WALL OR BUMPER 3070 IFCO=6ANDBT=1THENBT=0:GOTO3380:REM WAS IN THE WATER 3080 IFCO=6THENBT=1:GOTO3380:REM JUST LANDED IN WATER 3090 IFCO=7ANDBT=1THENBT=0:GOTO3440:REM WAS IN THE SAND 3100 IFCO=7THENBT=1:GOTO3440:REM JUST LANDED IN SAND 3110 IFCO=2THEN3500:REM UNEVEN SURFACE 3120 IFCO=0THEN3590:REM HIT THE HOLE 3130 REM HIT WALL OR BUMPER (FROM 3120) 3140 IFDI=1ORDI=3THENDI=DI+4:GOTO3010:REM REBOUND DIR 1 OR 3 TO DIR 5 OR 7 3150 IFDI=5ORDI=7THENDI=DI-4:GOTO3010:REM REBOUND DIR 5 OR 7 TO DIR 1 OR 3 3160 ONDI/2GOTO3180,3230,3280,3330 3170 REM REBOUND DIR 2 TO DIR 6 3180 IFFNSC(D2+1)<>160ANDFNSC(D2+40)<>160THENDI=6:GOTO3010 3190 IFFNSC(D2+1)<>160THENDI=4:GOTO3010 3200 IFFNSC(D2+40)<>160THENDI=8:GOTO3010 3210 DI=6:GOTO3010 3220 REM REBOUND DIR 4 TO DIR 6 3230 IFFNSC(D2+1)<>160ANDFNSC(D2-40)<>160THENDI=8:GOTO3010 3240 IFFNSC(D2+1)<>160THENDI=2:GOTO3010 3250 IFFNSC(D2-40)<>160THENDI=6:GOTO3010 3260 DI=8:GOTO3010 3270 REM REBOUND DIR 6 TO DIR 2 3280 IFFNSC(D2-1)<>160ANDFNSC(D2-40)<>160THENDI=2:GOTO3010 3290 IFFNSC(D2-1)<>160THENDI=8:GOTO3010 3300 IFFNSC(D2-40)<>160THENDI=4:GOTO3010 3310 DI=2:GOTO3010 3320 REM REBOUND DIR 8 TO DIR 4 3330 IFFNSC(D2-1)<>160ANDFNSC(D2+40)<>160THENDI=4:GOTO3010 3340 IFFNSC(D2-1)<>160THENDI=6:GOTO3010 3350 IFFNSC(D2+40)<>160THENDI=2:GOTO3010 3360 DI=4:GOTO3010 3370 REM WATER TRAP (FROM 3121) 3380 IFTF>0THEN3400 3390 TF=3:REM SET TRAP FLAG 3400 SYSPLT,BX,BY:PRINTBC$" "; 3410 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]";:BC$="" 3420 GOTO3720 3430 REM SAND TRAP (FROM 3122) 3440 IFTF>0THEN3460 3450 TF=3:REM SET TRAP FLAG 3460 SYSPLT,BX,BY:PRINTBC$" "; 3470 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[158][209]";:BC$="[158]" 3480 GOTO3720 3490 REM UNEVEN SURFACE (FROM 3123) 3500 IFUFTHEN3550 3510 UF=1:REM SET UNEVEN FLAG REROLL BALL OFF COURSE 3520 DI=DI+2*INT(2*RND(0))-1 3530 IFDI=0THENDI=2 3540 IFDI=9THENDI=7 3550 SYSPLT,BX,BY:PRINTBC$" "; 3560 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]";:BC$="" 3570 GOTO3720 3580 REM DETERMINE IF BALL IN HOLE 3590 SYSPLT,BX,BY:PRINT" ":SYSPLT,X2,Y2:PRINT" " 3600 SYSPLT,X2,Y2:PRINT"[144] "; 3610 DI=DI+2*INT(2*RND(0))-1 3620 IFDI=0THENDI=8 3630 IFDI=9THENDI=1 3640 SP=SP-.5:IFSP>0THENX2=X2+DI(DI,1):Y2=Y2+DI(DI,2):GOTO3020 3650 N1=7:N2=50:GOSUB4200:REM CUP SOUND 3660 SC=SC+1:TS=TS+1:REM BUMP SCORE 3670 TP=TP+HA(HO,5):OU=SC-TP:REM DETERMINE OVER/UNDER PAR 3680 POKE646,9:PRINT"HOLE NUMBER:";HO;" PAR:";HA(HO,5);" SCORE:";SC 3690 PRINT"STROKES:";TS;" OVER/UNDER:";OU;"[146]":POKE646,0 3700 IFSC=1THENGOSUB4290 3710 GOTO3780 3720 REM DECREMENT PENALTY OR NEXT HOLE 3730 IFTF>0THENTF=TF-1:IFTF=0THEN3750 3740 SP=SP-.3:IFSP>0THEN3010 3750 SC=SC+1:TS=TS+1 3760 IFBT=1THENGOSUB4060:REM PENALTY 3770 GOTO2830 3780 GOSUB4030:NEXTHO 3790 : 3800 :REM *** END *** 3810 : 3820 FORPA=1TO200:NEXTPA:POKE646,7 3830 PRINT"[147]";TAB(9)"*** MINIATURE GOLF ***" 3850 PRINT"THE GAME IS OVER !" 3860 PRINT 3870 PRINT"ON THE PAR 27 COURSE, YOU SHOT":PRINT"A ROUND OF"SC"[157]."; 3880 PRINT" THAT MAKES YOUR" 3890 PRINT"AVERAGE"INT(SC*100/9)/100"SHOTS PER HOLE.":PRINT 3900 IFSC<=27THENPRINT"[156]GREAT GAME! YOU SHOULD TURN PRO.[144]":GOTO3960 3910 IFSC>27ANDSC<=36THENPRINT"VERY, VERY NICE TRY![144]":GOTO3960 3920 PRINT:IFSC>36ANDSC<=45THENPRINT"[158]NOT TOO BAD - FOR A DUFFER![144]":GOTO3960 3930 IFSC>45ANDSC<=50THENPRINT"YOU NEED LOTS AND LOTS OF PRACTICE![144]":GOTO3960 3940 IFSC>50ANDSC<=56THENPRINT"DON'T TRY TO MAKE A LIVING OFF GOLF!":GOTO3960 3950 PRINT"[144]FORGET IT AND GO PLAY MONOPOLY!!" 3960 INPUT"[144]PLAY AGAIN (Y/N):";YN$ 3970 IFYN$=""THEN3960 3980 IFYN$="N"THENEND 3990 IFYN$<>"Y"THEN3960 4000 RUN 4010 REM ----------------------------- 4020 REM HOLD SCREEN DELAY 4030 FORX=1TO1250:NEXT:RETURN 4040 REM ----------------------------- 4050 REM FLASH PENALTY SIGNAL 4060 FORPF=1TO3 4070 FORCLEAR=STOVOL:POKECLEAR,0:NEXT 4080 POKEVOL,15 4090 POKEA1D,80:POKES1R,243:POKEW1U,4 4100 FORKS=1TO3 4110 PRINT""SPC(20)"[146]PENALTY":FORX=1TO300:NEXT 4120 POKEF1W,65 4130 FORI=20TO140STEP5:POKEP1U,I:NEXT 4140 POKEF1W,64:FORI=1TO50:NEXT 4150 PRINT""SPC(20)" ":FORX=1TO300:NEXT 4160 NEXTKS 4170 SC=SC+1:TS=TS+1:BT=0:RETURN 4180 REM ----------------------------- 4190 REM GOLF SOUNDS ROUTINE 4200 FORCLEAR=STOVOL:POKECLEAR,0:NEXT 4210 POKEVOL,15 4220 POKEW1U,8:POKEA1D,0:POKES1R,240 4230 POKES,N1:POKEP1U,N2 4240 POKEF1W,65 4250 POKEF1W,64:POKEVOL,0 4260 RETURN 4270 REM ----------------------------- 4280 REM FANFARE SALUTE 4290 FORCLEAR=STOVOL:POKECLEAR,0:NEXT 4300 FORFF=1TO4 4310 POKEA1D,85:POKES1R,85:POKEA2D,85:POKES2R,85 4320 POKEVOL,15:POKEF1W,33:POKEF2W,17 4330 FORI=1TO11STEP2:POKEP1U,YY(I):POKES,ZZ(I) 4340 POKEU2P,YY(I+1):POKEP2L,ZZ(I+1) 4350 IFYY(I)=50THENFORPA=1TO200:NEXT 4360 FORPA=1TO100:NEXT 4370 NEXT 4380 POKEF1W,32:POKEF2W,16:FORPA=1TO500:NEXT 4390 GOSUB4430:REM FLASH MESSAGE 4400 NEXTFF 4410 H1=0:PRINT"[144]":RETURN 4420 REM HOLE IN ONE FLASH 4430 PRINT"[146]"SPC(20)"[158]A HOLE IN ONE!!":FORX=1TO300:NEXT 4440 PRINT""SPC(20)" ":FORX=1TO300:NEXT 4450 POKEVOL,0:RETURN